\documentclass{scrartcl}

\begin{document}
	\begin{titlepage}
		\author{Revision Number 1} 
		\title{System 2 Documentation - Guide to Packages} 
		\date{17.01.2012}
		\maketitle
	\end{titlepage}

\tableofcontents
\newpage

\section{Packages}
With System 2, components are held in packages that you can create and share with others. Basically, you are not bound to a certain language to create package. All you must provide is an implementation of the \texttt{Package}-Interface in a *.so, *.dyn or *.dll-file. In other words: You have to provide a set of methods that System 2 expects in order to work properly and you have to be able to create a dynamically linked library. That said, you are not required to make your work on packages Open Source or free software, whereas System 2 itself is free software. Although we admit that it is not always possible we encourage the development of free software.

\subsection{Requirements on a package}
To make a package unique, each package and every component in it has a unique signature, which is a line of text that follows certain conventions. This is a very important thing to notice, since it prevents name collision on components.

As an example, the following convention should be used:
\newline
\newline
\textit{de.system2.photonics}
\newline
\newline
Or in general:
\newline
\newline
\textit{(country).(company or person).(domain)}
\newline
\newline
Your components should use their package signature as a prefix, ie:
\newline
\newline
\textit{de.system2.photonics.laser}
\newline
\newline
\textbf{Example:} If I were Michael Johnson, living in the United States and developing audio components, I would use:
\newline
\newline
\textit{us.michael-johnson.audio}
\newline
\newline

\end{document}